I. Field
The present invention generally relates to data communications, and more particularly, to enhanced file distribution in data communication systems in multicast or multicast environments.
II. Background
Interconnecting of networks globally allows information to be swiftly accessed irrespective of geographical distances. FIG. 1 shows a simplified schematic drawing of the global connection of networks, commonly referred to as the Internet signified by the reference numeral 20. The Internet 20 is in essence many networks with different levels of hierarchy linked together. The Internet 20 is operated under the Internet Protocol (IP) promulgated by the Internet Engineering Task Force (IETF). Details of the IP can be found in Request for Comments (RFC) 791 published by the IETF.
Connected to the Internet 20 are various individual networks, sometimes called local area networks (LANs) or wide area networks (WANs) depending on the network sizes. Shown in FIG. 1 are some of such networks 22, 24, and 26.
Within each of the networks 22, 24 and 26, there can be various pieces of equipment connected to and in communication with each other. Examples are computers, printers, and servers, to name just a few, which are commonly called nodes. When a node communicates beyond its own network via the Internet 20, the node needs to send data packets in compliance with the IP to the corresponding node in the other network. Likewise, data packets sent out by the corresponding node in the other network to the initiating node have also to conform with the IP.
Different types of applications necessitate different levels of protocols operating in conjunction with the IP. Take a few examples for illustration. Suppose the node 28 in the network 22 tries to download a file from another node 30 in the network 26. For file transfer, very often, a higher order protocol called the File Transfer Protocol (FTP) is used. The FTP can be found in RFC 959 published by the IETF. As such, data packets sent by the node 30 to the node 28 have to conform with, among other things, the FTP and the IP.
As another example, suppose the node 28 in the network 22 browses through the Internet 20 a website posed by yet another node 32 in the network 24. This time, the nodes 28 and 32 possibly use another higher order protocol, called the Hyper Text Transfer Protocol (HTTP). The HTTP can be found in RFC 2616 published by the IETF. Again, the exchanged data packets have to conform with, among other things, the HTTP and the IP.
The exemplary protocols FTP and HTTP are carried through still another intermediate level protocol, called the Transport Control Protocol (TCP). The TCP can be found in RFC 793. Under the TCP, the objective is to transmit data accurately. As such, erroneous data are always retransmitted. The TCP and the protocols that ride on the TCP, such as the FTP and HTTP, are commonly employed for one-to-one applications.
Advances in technologies make data intensive data transfers possible. For instance, networks capable of handling high bandwidths allow exchanges of multi-media files, such as audio and video files which normally hold massive data. When a large number of nodes receive such multimedia files, file delivery via conventional unicast methods may be inefficient. Among other things, the files need first to be replicated and thereafter delivered individually to each node. Consequently, there is a need to develop other types of protocols to address the increasing demand for one-to-many applications, suitable to be used for broadcast or multicast services.
To meet the demand, the File Delivery over Unidirectional Transport (FLUTE) protocol, specifically suitable for multicast file distribution applications, has been devised. The FLUTE protocol can be found in RFC 3926, published by the IETF, entitled “FLUTE—File Delivery over Unidirectional Transport,” Nov. 14, 2003. In a multicast session, traffic flow is more or less unidirectional. That is, reverse data traffic is limited, if at all existent. Such unidirectional usage is common in broadcast or multicast applications in which there is one communication source sending data to many receivers.
Data transmitted under the FLUTE protocol are carried on the top of the User Datagram Protocol (UDP), instead over the TCP as in the HTTP and FTP protocols. Under the UDP, erroneously data are not normally resent. For accurate data transmission, the FLUTE protocol normally transmits data in redundancy and uses error correcting schemes.
Using the FLUTE protocol, one or more files are transported during a file delivery session. The files are carried in data packets in the form of asynchronous layered coding (ALC), called the ALC packets. Depending on its length, each file may be transmitted in one or more ALC packets. The files are called objects. The objects are identifiable by file attributes contained in a file delivery table (FDT). At the receiver's end, the file attributes are relied on to reconstruct the original file from the ALC packets. The received file objects cannot be processed until the corresponding file attributes are correctly received. For higher reliability of FDT reception, duplicate FDT instances are typically interposed with the payload data in the ALC packets sent to the receivers. Heretofore, the FDTs and the content files are more or less transmitted concurrently. As such, even if the content files are correctly received, which is not always the case, a receiver needs to correctly receive the FDTs, extract the file attributes from the FDTs and thereafter processing the received content files. That is, a successful decoding and the subsequent presentation of a received file depend on a successful download of the file attributes needed for processing the ALC packet, more or less at the same time. Such dependence unavoidably introduces delays and often negatively impacts the quality of the content presentation. Furthermore, users without the correct file attributes very often make multiple attempts to acquire the needed file attributes, thereby typing communication channels. As a result, it may not be the most efficient use of available communication resources.
Accordingly, there is a need to provide more efficient schemes for better quality of broadcasts and in addition more economical utilization of communication resources.